<?php
// 这是系统自动生成的公共文件

/**
 * 密码加密的方法
 */
if (!function_exists('encrypt_password')) {

    /**
     * 密码加密
     * @param $password * 明文
     * @return string * 加密后的值
     */
    function encrypt_password($password){

        $salt = '2002a';
        return md5($salt.$password.$salt);
    }

}

/**
 * 响应成功的方法
 */
if (!function_exists('success')){
    function success($data=[],$code=200,$msg='ok'){
        return json([
            'code' => $code,
            'msg' => $msg,
            'data' => $data
        ]);
    }
}

/**
 * 公共响应失败方法
 */
if (!function_exists('fail')){
    /**
     * 获取信息失败的响应
     * @param int $code
     * @param string $msg
     * @param string $data
     * @return \think\response\Json
     */
    function fail($code = 2001,$msg='参数错误',$data=''){
        return json([
            'code' => $code,
            'msg' => $msg,
            'data' => $data
        ]);
    }
}

/**
 * 递归处理数据
 */
if (!function_exists('recursion_data')) {

    function recursion_data($data,$pid=0){

        # 定义空数组、存放处理完成的一些数据
        $result = [];
        foreach ($data as $value) {
            if ($value['pid'] == $pid) {
                # 一级菜单、放在同一键下面
                $result[$value['id']] = $value;
                # 第二步 查询对应的子权限 、自己调用自己
                $result[$value['id']]['children'] = recursion_data($data,$value['id']);
            }
        }

        return $result;
    }
}


/**
 * 过滤方法
 */
if (!function_exists('filter_data')) {
    /**
     * 过滤数据
     * @param $data
     * @param string $type * 根据处理对象、进行过滤
     */
    function filter_data($data,$type='spec'){
        // 属性名、属性值、、进行处理 过滤
        foreach ($data[$type] as $key => $value) {
            // 过滤掉规格名为空的数据
            if (empty(trim($value['name']))) {
                // 过滤掉当前的这一条数据
                unset($data[$type][$key]);// 直接删除这一条记录、不再处理
//                    ['name' => "", 'sort' => 1, 'value' => ['官方版','旗舰版'],],// 缺少数据、脏数据 没有规格名、但是有规格值
                continue;//没有规格名、规格值就不需要处理
            }
            // 过滤掉规格值为空
            foreach ($value['value'] as $k => $item) {
                if (empty(trim($item))) {
//                        unset($item);// 错误用 法销毁变量
//                        unset($value['value'][$k]);// 错误用法 销毁的变量
                    unset($data[$type][$key]['value'][$k]);
                }
            }
            // 再次进行验证 没有值 规格值多个
//                if (count($value['value']) <= 0) { 错误的
            if (count($data[$type][$key]['value']) <= 0) {
                unset($data[$type][$key]);
            }
        }
        return $data;
    }
}